home *** CD-ROM | disk | FTP | other *** search
/ Amiga Format CD 44 / Amiga Format CD44 (1999-08-26)(Future Publishing)(GB)(Track 1 of 3)[!][issue 1999-10].iso / -serious- / misc / mvslink / source / master.amos / master.amosSourceCode < prev   
AMOS Source Code  |  1999-07-26  |  10KB  |  279 lines

  1. ' MasterSlink v1.3  by  Vettorello Marco   11/07/1999
  2. '
  3. ' vettorel@psy.unipd.it  
  4. '  
  5. ' freeware version 
  6. ' You can change,use,modify,spread this code as you like 
  7. '
  8. ' this my last version. Development is over. 
  9. '
  10. 'Load "Work:AMOS_Pro/My_Program/Slink/slink+help2.abk",20
  11. 'Load "Work:AMOS_Pro/My_Program/Slink/slinkPOPmenu.abk",21 
  12. 'Load "Work:AMOS_Pro/My_Program/Slink/about.abk",22
  13. Global F$,LF,D$,NF$,BF$,TYPE$
  14.  Extension_24_0080 0
  15.  Extension_24_02C8 
  16.  Extension_24_0992 True,True
  17.  Extension_24_0018 1,1,20
  18.  Extension_24_0402 1,"Slink Master v1.3"+Chr$(0),"Slink Master Program v1.3  ï¿½1998-1999 by Vettorello Marco"+Chr$(0)
  19.  Extension_24_0720 1,False
  20.  Extension_24_009E 1,5,-1,1
  21. Dim HELP$(12)
  22. HELP$(0)="Set source file."+Chr$(0)
  23. HELP$(1)="Set destination base file."+Chr$(0)
  24. HELP$(9)="Source file's path."+Chr$(0)
  25. HELP$(2)="Destination file's path."+Chr$(0)
  26. HELP$(3)="Splitting mode."+Chr$(0)
  27. HELP$(4)="Number of file to create."+Chr$(0)
  28. HELP$(5)="Number of bytes of each file."+Chr$(0)
  29. HELP$(7)="Slink the source file."+Chr$(0)
  30. HELP$(8)="Reset program."+Chr$(0)
  31. HELP$(9)="  "+Chr$(0)
  32. HELP$(10)="  "+Chr$(0)
  33. HELP$(11)="  "+Chr$(0)
  34. HELP$(12)="  "+Chr$(0)
  35.  
  36.  Extension_24_0AB0 1,6,Array(HELP$(0))
  37. Dim HELP2$(6)
  38. HELP2$(1)="Source"+Chr$(0)
  39. HELP2$(2)="Destination"+Chr$(0)
  40. HELP2$(3)="Slink it"+Chr$(0)
  41. HELP2$(4)="Reset"+Chr$(0)
  42. HELP2$(5)="About"+Chr$(0)
  43. HELP2$(6)="Quit"+Chr$(0)
  44.  
  45. On Error Proc ERRH
  46. Do 
  47.    GW= Extension_24_0034 
  48.    GC= Extension_24_0052 
  49.    If GW=0
  50.       F$= Extension_24_0162("Please, select a file.","","","#?")
  51.       If Exist(F$)=True
  52.           Extension_24_009E 1,9,0,Varptr(F$)
  53.          Open In 1,F$
  54.          LF=Lof(1)
  55.          Close 1
  56.          LF$=Str$(LF)
  57.           Extension_24_0402 1,"File length :"+LF$+" bytes."+Chr$(0),"Slink Master Program v1.2  ï¿½1998 by Vettorello Marco"+Chr$(0)
  58.       End If 
  59.    Else If GW=1
  60.       D$= Extension_24_0162("Please, select output file.","","","#?")
  61.       If D$=""
  62.          REQ= Extension_24_0150(" Message","No Output!"+Chr$(0),"Ops..")
  63.       Else 
  64.           Extension_24_009E 1,2,0,Varptr(D$)
  65.       End If 
  66.    Else If GW=3
  67.       TYPE$= Extension_24_037A(1,3)
  68.       If TYPE$="bytes"
  69.           Extension_24_009E 1,4,-1,1
  70.           Extension_24_009E 1,5,-1,0
  71.       Else 
  72.           Extension_24_009E 1,5,-1,1
  73.           Extension_24_009E 1,4,-1,0
  74.       End If 
  75.       BF$=""
  76.       NF$=""
  77.    Else If GW=7
  78.       Rem slink
  79.       TYPE$= Extension_24_037A(1,3)
  80.       If TYPE$="bytes"
  81.          BF$= Extension_24_037A(1,5)
  82.       Else 
  83.          NF$= Extension_24_037A(1,4)
  84.       End If 
  85.       D$= Extension_24_037A(1,2)
  86.       If Exist(F$) and D$<>"" and(Val(BF$)<>0 or Val(NF$)<>0)
  87.          XREQ= Extension_24_0150("Message","Sure to Slink: "+F$+Chr$(10)+"with base file: "+D$+Chr$(10)+"dividing mode: "+TYPE$+" "+Chr$(10)+"files/bytes: "+NF$+BF$+Chr$(0),"Yes|Abort")
  88.          If XREQ=1
  89.             SLINK[TYPE$]
  90.          End If 
  91.       Else 
  92.          REQ= Extension_24_0150("Message","Missing parameters"+Chr$(0),"Ops..")
  93.       End If 
  94.    Else If GW=8
  95.       Rem cancel 
  96.       F$="" : D$="" : LF=0 : NF$="" : BF$="" : TYPE$=""
  97.        Extension_24_009E 1,9,0,Varptr(F$)
  98.        Extension_24_009E 1,2,0,Varptr(D$)
  99.        Extension_24_009E 1,4,0,Varptr(NF$)
  100.        Extension_24_009E 1,5,0,Varptr(BF$)
  101.        Extension_24_0402 1,"Slink Master v1.3"+Chr$(0),"Slink Master Program v1.3  ï¿½1998-1999 by Vettorello Marco"+Chr$(0)
  102.    Else If GW=-11 and GC=$69
  103.       _POPMENU$="PopUp-WinMenu."+Chr$(0)
  104.        Extension_24_0992 False,False
  105.        Extension_24_02C8 
  106.        Extension_24_0024 2,1,21, Extension_24_00F8 , Extension_24_010A 
  107.        Extension_24_009E 2,0,0,Varptr(_POPMENU$)
  108.        Extension_24_03B6 2
  109.        Extension_24_0720 2,False
  110.        Extension_24_0AB0 2,0,Array(HELP2$(0))
  111.       Do 
  112.          GW2= Extension_24_0034 
  113.          GC2= Extension_24_0052 
  114.          If GW2=1
  115.              Extension_24_03C6 
  116.             X= Extension_24_0042(2)
  117.             F$= Extension_24_0162("Please, select a file.","","","#?")
  118.             If Exist(F$)=True
  119.                 Extension_24_009E 1,9,0,Varptr(F$)
  120.                Open In 1,F$
  121.                LF=Lof(1)
  122.                Close 1
  123.                LF$=Str$(LF)
  124.                 Extension_24_0402 1,"File length :"+LF$+" bytes."+Chr$(0),"Slink Master Program v1.2  ï¿½1998 by Vettorello Marco"+Chr$(0)
  125.             End If 
  126.             Exit 
  127.          Else If GW2=2
  128.              Extension_24_03C6 
  129.             X= Extension_24_0042(2)
  130.             D$= Extension_24_0162("Please, select output file.","","","#?")
  131.             If D$=""
  132.                REQ= Extension_24_0150(" Message","No Output!"+Chr$(0),"Ops..")
  133.             Else 
  134.                 Extension_24_009E 1,2,0,Varptr(D$)
  135.             End If 
  136.             Exit 
  137.          Else If GW2=3
  138.              Extension_24_03C6 
  139.             X= Extension_24_0042(2)
  140.             TYPE$= Extension_24_037A(1,3)
  141.             If TYPE$="bytes"
  142.                BF$= Extension_24_037A(1,5)
  143.             Else 
  144.                NF$= Extension_24_037A(1,4)
  145.             End If 
  146.             D$= Extension_24_037A(1,2)
  147.             If Exist(F$) and D$<>"" and(Val(BF$)<>0 or Val(NF$)<>0)
  148.                XREQ= Extension_24_0150("Message","Sure to Slink: "+F$+Chr$(10)+"with base file: "+D$+Chr$(10)+"dividing mode: "+TYPE$+" "+Chr$(10)+"files/bytes: "+NF$+BF$+Chr$(0),"Yes|Abort")
  149.                If XREQ=1
  150.                   SLINK[TYPE$]
  151.                End If 
  152.             Else 
  153.                REQ= Extension_24_0150("Message","Missing parameters"+Chr$(0),"Ops..")
  154.             End If 
  155.             Exit 
  156.          Else If GW2=4
  157.              Extension_24_03C6 
  158.             X= Extension_24_0042(2)
  159.             F$="" : D$="" : LF=0 : NF$="" : BF$="" : TYPE$=""
  160.              Extension_24_009E 1,9,0,Varptr(F$)
  161.              Extension_24_009E 1,2,0,Varptr(D$)
  162.              Extension_24_009E 1,4,0,Varptr(NF$)
  163.              Extension_24_009E 1,5,0,Varptr(BF$)
  164.              Extension_24_0402 1,"Slink Master v1.3"+Chr$(0),"Slink Master Program v1.3  ï¿½1998-1999 by Vettorello Marco"+Chr$(0)
  165.             Exit 
  166.          Else If GW2=5
  167.              Extension_24_03C6 
  168.             X= Extension_24_0042(2)
  169.             X= Extension_24_0150("Message About..."+Chr$(0),"Master Slink v1.3"+Chr$(10)+Chr$(10)+"�1998-1999 Vettorello Marco"+Chr$(0),"OK")
  170.             Exit 
  171.          Else If GW2=6
  172.              Extension_24_03C6 
  173.             X= Extension_24_0042(2)
  174.             REQ= Extension_24_0150("Message"+Chr$(0),"Sure to quit?"+Chr$(0),"Yes|No")
  175.             If REQ=1
  176.                 Extension_24_0130 
  177.                End 
  178.             End If 
  179.             Exit 
  180.          Else If GW2=-11 and GC2=$69
  181.              Extension_24_03C6 
  182.             X= Extension_24_0042(2)
  183.             Exit 
  184.          End If 
  185.       Loop 
  186.    Else If GW=-1
  187.       REQ= Extension_24_0150("Message"+Chr$(0),"Sure to quit?"+Chr$(0),"Yes|No")
  188.       If REQ=1
  189.           Extension_24_0130 
  190.          End 
  191.       End If 
  192.    End If 
  193. Loop 
  194. Procedure SLINK[COME$]
  195.    On Error Proc ERRH
  196.    If COME$="bytes"
  197.       Rem modo bytes 
  198.       BF=Val(BF$)
  199.       If(BF>Fast Free)
  200.          If(BF>Chip Free)
  201.             REQ= Extension_24_0150("Message"+Chr$(0),"Not enougth memory"+Chr$(0),"I'll buy some RAM")
  202.             Pop Proc
  203.          End If 
  204.       End If 
  205.       If BF>=LF
  206.          REQ= Extension_24_0150("Message"+Chr$(0),"Subfiles' length is greater "+Chr$(10)+"than source file's length!"+Chr$(0),"Ops..")
  207.          Pop Proc
  208.       End If 
  209.       CONT=0
  210.       Reserve As Work 7,BF
  211.       MESS$="Reserved as buffer "+BF$+" bytes."+Chr$(0)
  212.        Extension_24_009E 1,6,0,Varptr(MESS$)
  213.       Open In 1,F$
  214.       Pof(1)=0
  215.       Repeat 
  216.          Inc CONT
  217.          Sload 1 To Start(7),BF
  218.          Bsave D$+"_"+ Extension_22_00E8(Str$(CONT)),Start(7) To Start(7)+Length(7)
  219.          MESS$="Slink part "+Str$(CONT)+Chr$(0)
  220.           Extension_24_009E 1,6,0,Varptr(MESS$)
  221.          If(LF-(CONT*BF))=0
  222.             Exit 
  223.          Else If(LF-(CONT*BF))<BF
  224.             Bank Shrink 7 To(LF-(CONT*BF))
  225.             Sload 1 To Start(7),(LF-(CONT*BF))
  226.             Bsave D$+"_"+ Extension_22_00E8(Str$(CONT+1)),Start(7) To Start(7)+Length(7)
  227.             MESS$="Slink part "+Str$(CONT)+Chr$(0)
  228.              Extension_24_009E 1,6,0,Varptr(MESS$)
  229.             Exit 
  230.          End If 
  231.       Until Eof(1)=True
  232.       Erase 7
  233.       Close 
  234.       MESS$="Slink terminated!"+Chr$(0)
  235.        Extension_24_009E 1,6,0,Varptr(MESS$)
  236.    End If 
  237.    If COME$="number"
  238.       NF=Val(NF$)
  239.       BF=Int(LF/NF)
  240.       If(BF>Fast Free)
  241.          If(BF>Chip Free)
  242.             REQ= Extension_24_0150("Message"+Chr$(0),"Not enougth memory"+Chr$(0),"I'll buy some RAM")
  243.             Pop Proc
  244.          End If 
  245.       End If 
  246.       If NF<0
  247.          REQ= Extension_24_0150("Message"+Chr$(0),"Number of subfile "+Chr$(10)+"can't be negative!"+Chr$(0),"Ops...")
  248.          Pop Proc
  249.       End If 
  250.       Reserve As Work 7,Int(LF/NF)
  251.       MESS$="Reserved as buffer "+Str$(Int(LF/NF))+" bytes."+Chr$(0)
  252.        Extension_24_009E 1,6,0,Varptr(MESS$)
  253.       Open In 1,F$ : Pof(1)=0
  254.       For CONT=1 To NF
  255.          Sload 1 To Start(7),Length(7)
  256.          Bsave D$+"_"+ Extension_22_00E8(Str$(CONT)),Start(7) To Start(7)+Length(7)
  257.          MESS$="Slink part "+Str$(CONT)+Chr$(0)
  258.           Extension_24_009E 1,6,0,Varptr(MESS$)
  259.          If LF-(CONT*Length(7))=0
  260.             Exit 
  261.          Else If LF-(CONT*Length(7))<Length(7)
  262.             Bank Shrink 7 To(LF-(CONT*Length(7)))
  263.             Sload 1 To Start(7),Length(7)
  264.             Bsave D$+"_"+ Extension_22_00E8(Str$(CONT+1)),Start(7) To Start(7)+Length(7)
  265.             MESS$="Slink part "+Str$(CONT)+Chr$(0)
  266.              Extension_24_009E 1,6,0,Varptr(MESS$)
  267.          End If 
  268.       Next 
  269.       Erase 7
  270.       Close 
  271.       MESS$="Slink terminated!"+Chr$(0)
  272.        Extension_24_009E 1,6,0,Varptr(MESS$)
  273.    End If 
  274. End Proc
  275. Procedure ERRH
  276.    ER$=Str$(Errn)+"  "+Err$(Errn)
  277.    A= Extension_24_0150("ERROR!",Chr$(10)+"An error has occoured :"+Chr$(10)+Chr$(10)+ER$+Chr$(10)+Chr$(10)+"Plese contact the author,"+Chr$(10)+"see docs for address.","Contact the author.")
  278.    Resume Next 
  279. End Proc